import pandas as pd
d = [[1.3,2,0,3,4],[2,4,1,4],[2,5,1.9,7],[3,1,0,11]]
p = {'名字':['张三','李四','王麻子'],'年龄':[12,24,56],'地址':['西安','延安','西利亚']}
data1 = pd.DataFrame(d)
data2 = pd.DataFrame(p,index=['a','b','c'])
print(data1)
print(data2)
# 按照数据在数据框中的位置访问数据
print(data1[0])              # 访问数据框的单列数据
print(data1[[2,3]])          # 访问数据框的多列数据
print(data1.head(2))         # 访问数据框前两行数据
print(data1.tail(2))         # 访问数据框的后几行
print(data1.iloc[0,0])       # 访问数据框指定位置的数据--按照行列顺序去访问
print(data1.iloc[0:3,0])     # 访问数据框第0列的第一到三行数据--如果使用切片操作访问数据返回值将会是一个数据框



# 按照数据框的行列名称访问数据
print(data2.loc['a','名字'])          # 访问数据框中行名称是名字，列名称是a的数据
print(data2.loc['a':'c','名字'])      # 访问数据框中列名称是名字，行名称是从a到c的所有数据--按名称访问切片是闭区间开头和结尾都可以取到
print(data2.loc[:,'地址'])            # 访问列名称是地址的所有数据


# 数据框的修改--先访问数据然后重新赋值--修改可以赋给列表来修改多个元素
data1.iloc[1,3] = '三'


# 数据框增加数据
data1['a'] = [1,2,3,4]                 # 数据框元素的增加
print(data1)


'''
drop(labels,axis,levels,inplace)
参数：
lables:接收string或者array。代表删除的行或列的标签。无默认。
axis:接收0或1。代表操作的轴向。默认为0(0表示删除行，1表示删除列)
levels:接收int或索引名。代表标签所在级别。默认为None。
inplace:接收boolean。代表操作是否是对元数据生效。默认为Flase。
'''
# 删除数据框的数据--不能直接对元数据操作
data1.drop(0,axis=1,inplace=True)
print(data1)
'''
在numpy中题共的一些统计函数
np.min()--最小值
mp.mean()--均值
np.median()--中位数
np.var()--中位数
np.max()--最大值
np.ptp()--极差
np.std()--标准差
np.cov()--协方差
pandas中的一些方法
min--最小值
mean--均值
median--中位数
var--方差
sem--标准误差
skew--样本偏差
quantile--四分位数
descride--描述统计
max--最大值
ptp--极差
std--标准差
'''
